home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / t_os / nem / nem.exe / CONTROL.PLP next >
Text File  |  1991-08-17  |  6KB  |  166 lines

  1. /* auto pilot program 「NEM 2.04」 1991.4.01 By GOOSE(MAF00070) */
  2. /** 処理用関数 ************************************************/
  3. /*--------------------------------------------------------------
  4. ** 必要な項目が設定されてない場合のメッセージ出力
  5. **------------------------------------------------------------*/
  6. %Pleasset {    [msg]
  7.     select(msg|{を「1.設定変更」で設定してから処理を選択して下さい。},{180},,{ 確認 },)
  8. };
  9. /*--------------------------------------------------------------
  10. ** セットアップファイルからキーワードを持つ行を読み込み,その内容を返す。
  11. **------------------------------------------------------------*/
  12. %Getfield {    [FILE,KEY]    %temp @read(FILE);im(@head(@body(temp,KEY|{=}),{;}))};
  13. /*--------------------------------------------------------------
  14. ** セットアップファイルのキーワードを持つ行を置き換える。
  15. **------------------------------------------------------------*/
  16. %Setfield {
  17.     [FILE,KEY,DATA]
  18.     %temp @read(FILE);%temp1 @head(temp,KEY|{=});
  19.     %temp2 @body(temp,KEY|{=}|@Getfield(FILE,KEY)|{;});
  20.     %delcmd {DEL }|FILE;dispoff({Yes});command(delcmd);dispoff({No});
  21.     write(FILE,temp1|KEY|{=}|DATA|{;}|temp2);
  22. };
  23. /*--------------------------------------------------------------
  24. ** getcdirの値がrootなら\を取り除く。
  25. **------------------------------------------------------------*/
  26. %Getcdir2 {
  27.     var temp[48];temp:=@getcdir;
  28.     case(@getchar(temp,@nochar(temp))={\},{Yes},{temp:=@body(temp,,{\})},{No},);
  29.     im(temp)
  30. };
  31. /*--------------------------------------------------------------
  32. ** ログファイルのコピー(.月日->.LOG)。
  33. **------------------------------------------------------------*/
  34. %Logadd {
  35.     [path,filename,date]
  36.     case(DEBUG={Yes},{display({Logadd}|path|{\}|filename|{.}|date|{\n})});
  37.     %logfile path|{\}|filename|{.}|{LOG};
  38.     %today path|{\}|filename|{.}|date;
  39.     %copycmd {COPY }|logfile|{+}|today|{ }|logfile;
  40.     %delcmd {DEL }|today;case(DEBUG={Yes},{No},{dispoff({Yes})});
  41.     command(copycmd);command(delcmd);dispoff({No});
  42. };
  43. /*注意を促す画面フラッシュ*/
  44. %Flash {backclr(184,64,64);display({});backclr(0,0,0)};
  45. /*--------------------------------------------------------------
  46. ** 空白除去
  47. **------------------------------------------------------------*/
  48. %rmblank { [str]
  49.     var work[256];work:=str;
  50.     loop({case(@getchar(work,1,1)={ },
  51.         {Yes},{work:=@getchar(work,2);im({Yes})},
  52.         {No},{case(@getchar(work,1,2)={ },
  53.             {Yes},{work:=@getchar(work,3);im({Yes})},{No},{im({No})} )} )});
  54.     loop({case(@getchar(work,@nochar(work),1)={ },
  55.         {Yes},{work:=@getchar(work,1,@nochar(work)-1);im({Yes})},
  56.         {No},{case(@getchar(work,@nochar(work)-1,2)={ },
  57.             {Yes},{work:=@getchar(work,1,@nochar(work)-2);im({Yes})},
  58.             {No},{im({No})} )} )});
  59.     im(work)
  60. };
  61.  
  62. /** 実行開始 **************************************************/
  63. /*- 変数宣言 -------------------------------------------------*/
  64. var PROCESS[256];var PROCNUM[32];var PLTEND[3];var FORUM[128];var UID[8];
  65. var PASSWD[32];var FIRST[3];FIRST:={Yes};
  66. /*- セットアップファイルのチェック ---------------------------------------*/
  67. case(@filechk(SETUPF),{No},
  68.     {select({SETUPファイル(}|SETUPF|{)がありません。},
  69.         {600},{stop},{ 作成せずに終わる },{stop},
  70.         { 新規に作成する },{display({\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n});Crisetup;Setup})
  71. });
  72.  
  73. /*- メインループ開始 ----------------------------------------------*/
  74. PROCESS:=DEFAULT;PROCNUM:=DEFAULTN;FORUM:=@Getfield(SETUPF,{FORUM});%DATE @day;
  75. %MAILPATH {};%LOGPATH {};
  76. %BMAIL {};%HP {};%ABORT {};%ABORTTIME {};%LHPATH {};%PARMES {};
  77. %LOGADD {};%MAILADD {};
  78. %COMPMAIL {};%COMPLOG {};%COMPHP {};
  79. %DELMAIL {};%DELLOG {};%DELHP {};
  80.  
  81. display({\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n});
  82. loop(
  83.     {PLTEND:={Yes};
  84.     loop(Selproc); /* 処理選択 */
  85.     case(DEBUG,{Yes},{display({PROCESS:}|PROCESS|{\n})});
  86.     /*- セットアップファイルからの情報の読み込み ----------------------*/
  87.     %SETBUF @read(SETUPF);
  88.     %MAILPATH @head(@body(SETBUF,{MAILPATH=}),{;});
  89.     %LOGPATH @head(@body(SETBUF,{LOGPATH=}),{;});
  90.     %BMAIL @head(@body(SETBUF,{BMAIL=}),{;});
  91.     %HP @head(@body(SETBUF,{HP=}),{;});
  92.     %ABORT @head(@body(SETBUF,{ABORT=}),{;});
  93.     %ABORTTIME @head(@body(SETBUF,{ABORTTIME=}),{;});
  94. /*    %LHPATH @head(@body(SETBUF,{LHPATH=}),{;}); */
  95.     %PARMES @head(@body(SETBUF,{PARMES=}),{;});
  96.     %LOGADD @head(@body(SETBUF,{LOGADD=}),{;});
  97. /*    %MAILADD @head(@body(SETBUF,{MAILADD=}),{;});
  98.     %COMPMAIL @head(@body(SETBUF,{COMPMAIL=}),{;});
  99.     %COMPLOG @head(@body(SETBUF,{COMPLOG=}),{;});
  100.     %COMPHP @head(@body(SETBUF,{COMPHP=}),{;});
  101.     %DELMAIL @head(@body(SETBUF,{DELMAIL=}),{;});
  102.     %DELLOG @head(@body(SETBUF,{DELLOG=}),{;});
  103.     %DELHP @head(@body(SETBUF,{DELHP=}),{;}); */
  104.  
  105.     case(FIRST,{Yes},
  106.         {
  107.         /*- 未続済なら接続する -------------------------------*/
  108.         sendtype({Ch/1});
  109.         wait({1},);
  110.         dispoff({Yes});type({+++});
  111.         wait({2},
  112.             {dispoff({No});
  113.             %temp @Getfield(SETUPF,{UID});
  114.             case(@body(@head(temp,{,No,}),{,})<>{},
  115.                 {No},{UID:=@head(temp,{,No,})},
  116.                 {Yes},
  117.                     {%ONEPROC temp;
  118.                     %TITLE {  どのIDでログインしますか?};
  119.                     loop({UID:=@Selelm;
  120.                         case(UID={},{Yes},{im({Yes})},{No},{im({No})}) }); }
  121.             );
  122.             %temp @Getfield(SETUPF,{PASSWD});
  123.             var temp1[40];temp1:=@body(@head(@Getfield(SETUPF,{UID}),{,No,}),{,});
  124.             PASSWD:=@case(temp1<>{},
  125.                 {No},{im(@head(temp,{,No,}))},
  126.                 {Yes},{var I[1];I:=1;
  127.                     temp1:=@head(@Getfield(SETUPF,{UID}),{,No,});
  128.                     loop({case(@head(temp1,{,})=UID,
  129.                         {Yes},{im({No})},
  130.                         {No},{I:=I+1;temp1:=@body(temp1,{,});im({Yes})}
  131.                     )});
  132.                     var J[1];J:={1};var temp2[40];temp2:=temp;
  133.                     loop({case(J<I,
  134.                         {Yes},{temp2:=@body(temp2,{,});J:=J+1;im({Yes})})});
  135.                     im(@head(temp2,{,}))
  136.             });
  137.             sendtype({Line});
  138.             display({★オートパイロットの実行を開始します。\n});
  139.             {Mopset;Dialap;Login}},
  140.             {OK},{wait({1});sendtype({Line});type({ATO\n});wait({1},);
  141.                 UID:=@head(@Getfield(SETUPF,{UID}),{,});
  142.                 type({\n});wait({3},);dispoff({No})
  143.         });
  144.         FIRST:={No};
  145.     });
  146.     /*- 選択された処理がある間,実行する -----------------------------------*/
  147.     case(ABORT={Yes},
  148.         {Yes},
  149.             {%Abort CUTLINEP;
  150.             case(PARMES={Yes},
  151.                 {Yes},{%Rmes RMESMP;loop(Exeproc)},
  152.                 {No}, {%Rmes RMESFP;loop(Exeproc)})},
  153.         {No},
  154.             {%Abort STOPPLTP;
  155.             case(PARMES={Yes},
  156.                 {Yes},{%Rmes RMESMP;loop(Exeproc)},
  157.                 {No}, {%Rmes RMESFP;loop(Exeproc)})}
  158.     );
  159.     case(PLTEND,{Yes},{Logout;stop});
  160.     Flash;Flash;
  161.     display({\n★選択された処理を終わりました。\n});
  162.     PROCESS:={};PROCNUM:={};
  163.     im({Yes})
  164.     }
  165. );
  166.